// pages/index/index.js
const app = getApp()

Page({
  data: {
    userInfo: null,
    todayCheckIn: null,
    recentRecords: [],
    isLoading: false
  },

  onLoad() {
    this.setData({
      userInfo: app.globalData.userInfo
    })
    this.loadTodayCheckIn()
    this.loadRecentRecords()
  },

  onShow() {
    this.setData({
      userInfo: app.globalData.userInfo
    })
    this.loadTodayCheckIn()
    this.loadRecentRecords()
  },

  // 加载今日打卡状态
  loadTodayCheckIn() {
    app.request('/checkin/today', 'GET')
      .then(res => {
        this.setData({
          todayCheckIn: res.data
        })
      })
      .catch(err => {
        console.error('加载今日打卡状态失败:', err)
      })
  },

  // 加载最近打卡记录
  loadRecentRecords() {
    app.request('/checkin/list', 'GET', { page: 1, limit: 5 })
      .then(res => {
        this.setData({
          recentRecords: res.data.list || []
        })
      })
      .catch(err => {
        console.error('加载最近记录失败:', err)
      })
  },

  // 快速打卡
  quickCheckIn() {
    wx.navigateTo({
      url: '/pages/checkin/checkin'
    })
  },

  // 查看详情
  viewDetail(e) {
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
      url: '/pages/checkin/detail?id=' + id
    })
  },

  // 登录
  login() {
    this.setData({ isLoading: true })
    app.wechatLogin()
      .then(res => {
        this.setData({
          userInfo: res.data.user,
          isLoading: false
        })
        wx.showToast({
          title: '登录成功',
          icon: 'success'
        })
      })
      .catch(err => {
        this.setData({ isLoading: false })
        wx.showToast({
          title: '登录失败',
          icon: 'error'
        })
      })
  },

  // 获取用户信息
  getUserProfile() {
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        app.globalData.userInfo.avatarUrl = res.userInfo.avatarUrl
        app.globalData.userInfo.nickName = res.userInfo.nickName
        this.setData({
          userInfo: app.globalData.userInfo
        })
      }
    })
  },

  // 获取手机号
  getPhoneNumber(e) {
    app.getPhoneNumber(e)
      .then(res => {
        wx.showToast({
          title: '绑定成功',
          icon: 'success'
        })
      })
      .catch(err => {
        wx.showToast({
          title: '绑定失败',
          icon: 'error'
        })
      })
  }
})